import pandas as pd
import h5py
import jieba
import jieba.posseg as psg
def cleanData():
    '''
        cleanData的目的有两
        1、为了清洗重复小说（阅次元有很多这样重复上传的小说）
            保留规则以简介详细程度为第一要义，优先保留有简介的，倘若都没有简介，随机保存其中一个
        2、为了处理标题的多余内容，只保留小说标题，删除书名号等一切多余内容
    '''
    '''
        1、数据导入
    '''
    df=pd.read_csv('abooky_novels_(有简介).csv')
    df_handclean=pd.DataFrame(columns=['name'])
    '''
        2、标题清洗
    '''
    for i in range(len(df)):
        name=df.loc[i,'name']
        name = name.replace(u'\xa0', '')  # 替换&nbsp;，即html空格
        name = name.replace(' ', '')  # 替换半角空格
        name = name.replace(chr(12288), '')  # 替换全角空格
        split_str=psg.lcut(name)
        string=''
        flag=0
        flag_flag=0
        for split in split_str:
            if (split.flag=='x'): #处理有《》的小说名
                if (split.word=='[')|(split.flag==']'):
                    flag_flag=1
                flag+=1
            else:
                string+=split.word
            if flag==2:
                break
            # elif split.word=='》':
            #     break
            # else:
            #     # 增加无《》的小说名识别退出条件
            #     if
            #         string+=split.word
        if flag_flag==1:
            df_handclean.loc[i]=name
            print('--',i,'--',name)
    df_handclean.to_csv('handclean.csv')
def cleanData_withhand():
    '''
        cleanData的目的有两
        1、为了清洗重复小说（阅次元有很多这样重复上传的小说）
            保留规则以简介详细程度为第一要义，优先保留有简介的，倘若都没有简介，随机保存其中一个
        2、为了处理标题的多余内容，只保留小说标题，删除书名号等一切多余内容
    '''
    '''
        1、数据导入
    '''
    df=pd.read_csv('abooky_novels_(有简介).csv')
    df_handclean=pd.read_csv('handclean.csv')
    '''
        2、标题清洗
    '''
    for i in range(len(df)):
        name=df.loc[i,'name']
        name = name.replace(u'\xa0', '')  # 替换&nbsp;，即html空格
        name = name.replace(' ', '')  # 替换半角空格
        name = name.replace(chr(12288), '')  # 替换全角空格
        split_str=psg.lcut(name)
        string=''
        flag=0
        flag_flag=0
        for split in split_str:
            if (split.flag=='x'): #处理有《》的小说名
                if (split.word=='[')|(split.flag==']'):
                    flag_flag=1
                flag+=1
            else:
                string+=split.word
            if flag==2:
                break
            # elif split.word=='》':
            #     break
            # else:
            #     # 增加无《》的小说名识别退出条件
            #     if
            #         string+=split.word
        if flag_flag==1:
            df.loc[i,'name','abstract']=
    df_handclean.to_csv('handclean.csv')
cleanData()